package com.imooc;

/**
 * 用户身份认证标记接口
 * @author steve
 * @date 2020/6/8 14:40
 */
@FunctionalInterface
public interface IUserCredential {

    /**
     * 通过用户账号，验证用户身份信息的接口
     * @param username 要验证的用户账号
     * @return 返回身份信息[系统管理员、用户管理员、普通用户]
     */
    String verifyUser(String username);

    //boolean test();
    //来自object继承的方法，不影响函数式接口
    String toString();

    /**
     * 可以在函数式接口内添加默认方法方式，给所有接口实现子类增加处理方法，并且不影响函数式接口的语义语法
     * 函数式接口的语义语法是：当前接口中，有一个未实现的抽象方法即可（不包含默认方法和静态方法）
     * 默认方法应用场景：给所有的实现子类的对象增加的一些通用方法
     * @param username
     * @return
     */
    default String getCredential(String username) {
        if ("admin".equals(username)) {
            return "系统管理员会员+ admin";
        } else if ("manager".equals(username)) {
            return "用户管理员会员+ manager";
        }
        return "普通用户会员+ common";
    }
}
